package cn.kgc.dm.service;

import cn.kgc.dm.common.TokenValidationFailedException;
import cn.kgc.dm.pojo.DmUser;
import cn.kgc.dm.vo.DmUserVO;

import java.text.ParseException;

/**
 * @author: 12138
 * @CreateTime: 2019/05/14
 */
public interface TokenService {
	
	/**
	 * 生成UUID
	 * @param phone
	 * @return
	 */
	String generateUuid(String phone);
	
	void saveUuid(String uuid, String token);
	
	/**
	 * 生成token
	 *
	 * @param agent
	 * @param dmUserVO
	 * @return
	 */
	String generateToken(String agent, DmUserVO dmUserVO);
	
	/**
	 * 保存用户信息到redis
	 *
	 * @param token
	 * @param dmUserVO
	 */
	void saveToken(String token, DmUserVO dmUserVO);
	
	/**
	 * 从redis获取用户信息
	 *
	 * @param token
	 * @return
	 */
	DmUserVO load(String token);
	
	/**
	 * 删除token
	 *
	 * @param token
	 */
	void del(String token);
	
	/**
	 * 置换token
	 *
	 * @param agent
	 * @param token
	 * @return
	 * @throws Exception
	 */
	String replaceToken(String agent, String token) throws TokenValidationFailedException, ParseException;
	
}
